package views.mediators
{
	import com.axon.mvc.helpers.AxVerbs;
	import com.axon.mvc.patterns.mediator.AxMediatorPopUp;
	
	import flash.display.DisplayObject;
	
	import helpers.Verbs;
	
	import models.vo.DocumentoApresentado;
	import models.vo.Pleito;
	
	import views.components.PleitoPopUpRegDoctosView;

	public class PleitoPopUpRegDoctosMediator extends AxMediatorPopUp
	{
		//////////////////////////////////////////////////////////////////////////////////////////////////////

		public function PleitoPopUpRegDoctosMediator( parent: DisplayObject, vo: Object	= null )
		{
			super(	  parent, 
					  vo, 
					{ model : DocumentoApresentado, requestName : AxVerbs.LIST }, 
					{ text : "Falha na leitura dos documentos apresentados." } );
		}
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////

		private function get view(): PleitoPopUpRegDoctosView { return viewComponent as PleitoPopUpRegDoctosView; }
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		override protected function initialize(): void 
		{
			regResponseInterest( Pleito, 				[Verbs.REGISTRAR_DOCTOS_ADIC] );
			regResponseInterest( DocumentoApresentado,	[AxVerbs.SAVE] );

		}	
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function eventEnableGestures(): void
		{
			view.pbEditar.enabled = (view.adgDocumentos.selectedItem != null);	
		}
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function respPleitoRegistrarDoctosAdicSuccess( sender: Object, body: Object, extraInfo: Object ): void
		{
			Pleito(view.vo).documentosAdicionais = Pleito(body).documentosAdicionais;
			view.pbSalvar.enabled = false;
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////

		public function respPleitoRegistrarDoctosAdicFailure( sender: Object, body: Object, extraInfo: Object ): void
		{
			view.errorString = "Falha na gravação dos documentos adicionais";
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////

		public function respDocumentoApresentadoSaveSuccess( sender: Object, body: Object, extraInfo: Object ): void
		{
			view.adgDocumentos.selectedItem = body as DocumentoApresentado;
		}

	}
}